package com.suanfa.leetcode.longestcommonprefix;

/**
 * todo 编写一个函数来查找字符串数组中的最长公共前缀。
 *      如果不存在公共前缀，返回空字符串 ""。
 *      输入：strs = ["flower","flow","flight"]，输出："fl"
 *      ————————————————————————————————
 *      先找出长度最短的元素，再用这个长度作为循环次数，同时比对元素首字母
 */
public class LongestCommonPrefix {
    public String longestCommonPrefix(String[] strs) {
        //字符串的长度
        int minlength=strs[0].length();
        for (int i = 1; i < strs.length; i++) {
            if (strs[i].length()<minlength){
                minlength=strs[i].length();
            }
        }
        for (int i = 0; i < minlength; i++) {
            //对每个字符串中的起始字符比对是否一致
            for (int j = 0; j < strs.length-1; j++) {
                //如果每个字符串的第i个字符开始有不同了，那么返回
                if (!strs[j].substring(0, i + 1).equals(strs[j + 1].substring(0, i + 1))){
                    return strs[j].substring(0,i);
                }
            }
        }
        return minlength==0?"":strs[0].substring(0,minlength);
    }

    public static void main(String[] args) {
        String[] strs1={"go11","go","go1"};
        LongestCommonPrefix prefix=new LongestCommonPrefix();
        System.err.println(prefix.longestCommonPrefix(strs1));
    }
}
